﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace T.FAS.Runtime.Metadata.Entity
{
    /// <summary>
    /// 元数据类型信息
    /// </summary>
    [Serializable]
    [DataContract]
    public class MetaDataTypeInfo
    {
        /// <summary>
        /// ID
        /// </summary>
        [DataMember]
        public string ID { get; set; }

        /// <summary>
        /// 缩写
        /// </summary>
        [DataMember]
        public string Code { get; set; }

        /// <summary>
        /// 表名称
        /// </summary>
        [DataMember]
        public string TableName { get; set; }

        /// <summary>
        /// 名称
        /// </summary>
        [DataMember]
        public string Name { get; set; }

        ///// <summary>
        ///// 类型
        ///// </summary>
        //[DataMember]
        //public MetaDataType MetaDataType { get; set; }

        /// <summary>
        /// 主键列
        /// </summary>
        [DataMember]
        public string IDColumnName { get; set; }

        /// <summary>
        /// 编辑器URL
        /// </summary>
        [DataMember]
        public string EditorUrl { get; set; }

        /// <summary>
        /// 分类：数据类、服务类、敏捷开发类
        /// </summary>
        [DataMember]
        public string Category { get; set; }

        /// <summary>
        /// 是否删除
        /// </summary>
        [DataMember]
        public bool IsDeleted { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [DataMember]
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建者
        /// </summary>
        [DataMember]
        public string Creator { get; set; }

        /// <summary>
        /// 最后修改时间
        /// </summary>
        [DataMember]
        public DateTime LastModifyTime { get; set; }

        /// <summary>
        /// 最后修改者
        /// </summary>
        [DataMember]
        public string LastModifier { get; set; }

        /// <summary>
        /// 排序编号
        /// </summary>
        [DataMember]
        public int SortCode { get; set; }

        /// <summary>
        /// 元数据内容类型设置
        /// </summary>
        [DataMember]
        public string MetaDataContentType { get; set; }

        /// <summary>
        /// 元数据管理接口实现类型设置
        /// </summary>
        [DataMember]
        public string MetaDataManagerType { get; set; }

        /// <summary>
        /// 元数据扩展属性处理器类型设置
        /// </summary>
        [DataMember]
        public string MetaDataExtPropertyHandler { get; set; }
        /// <summary>
        /// 运行时元数据扩展处理器类型设置
        /// </summary>
        [DataMember]
        public string MetaDataExtManagerType { get; set; }

        /// <summary>
        /// 元数据序列化器类型设置
        /// </summary>
        [DataMember]
        public string MetadataSerializer { get; set; }

        /// <summary>
        /// 元数据编译器类型设置
        /// </summary>
        [DataMember]
        public string MetaDataCompiler { get; set; }

        /// <summary>
        /// 元数据发布管理接口类型设置
        /// </summary>
        [DataMember]
        public string MetaDataReleaseManager { get; set; }

        /// <summary>
        /// 元数据差异比较类型设置
        /// </summary>
        [DataMember]
        public string MetaDataComparer { get; set; }

        /// <summary>
        /// 元数据出码
        /// </summary>
        [DataMember]
        public string MetaDataGenerateCode { get; set; }
    }
}
